package cn.tedu.thread;

public class SingleDemo {
    public static void main(String[] args) {
        TaskManager tm = TaskManager.getInstance();
        TaskManager.m();
    }
}

//定义类---代表任务管理器的类
//类只能产生（创建）一个对象
//单例实现方式---饿汉式(无论是否需要对象都会创建)
/*class TaskManager{
    //私有化构造方法
    private TaskManager(){}

    //创建对象---一个静态对象（私有化属性）
    private static TaskManager tm=new TaskManager();

    //提供静态方法返回唯一的对象
    public static TaskManager getInstance(){
        return tm;
    }
    public static void m(){}
}*/


//单例实现方式---懒汉式（线程安全问题）
class TaskManager{
    //私有化构造方法
    private TaskManager(){}

    //声明对象并且赋值为null
    private static TaskManager tm=null;

    //提供静态方法返回唯一的对象
    public static synchronized TaskManager getInstance(){
        //判断tm对象是否为null
        if(tm==null)
            tm=new TaskManager();
        return tm;
    }
    public static void m(){}
}








